@misc{2007Compilers,
  title={Compilers: Principles, Techniques, and Tools (Rental), 2nd Edition},
  author={ Aho, A. V.  and  Lam, M. S.  and  Ullman, J. D.  and  Sethi, R. },
  year={2007},
}

@inproceedings{2004LLVM,
  title={LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation},
  author={ Lattner, C.  and  Adve, V. },
  booktitle={Code Generation and Optimization, 2004. CGO 2004. International Symposium on},
  year={2004},
}

@article{Richard1995A,
  title={A correspondence between continuation passing style and static single assignment form},
  author={Richard and A. and Kelsey},
  journal={Acm Sigplan Notices},
  year={1995},
}

@article{2010C,
  title={C++ lambda expressions and closures},
  author={ Jaervi, Jaakko  and  Freeman, J. },
  journal={Science of Computer Programming},
  volume={75},
  number={9},
  pages={762-772},
  year={2010},
}

@misc{2020MLIR,
  title={MLIR: A Compiler Infrastructure for the End of Moore's Law},
  author={ Lattner, C.  and  Amini, M.  and  Bondhugula, U.  and  Cohen, A.  and  Davis, A.  and  Pienaar, J.  and  Riddle, R.  and  Shpeisman, T.  and  Vasilache, N.  and  Zinenko, O. },
  year={2020},
}

@article{spuler1994compiler,
  title={Compiler detection of function call side effects},
  author={Spuler, David A and Sajeev, A Sayed Muhammed},
  journal={Informatica},
  volume={18},
  number={2},
  pages={219--227},
  year={1994},
  publisher={Citeseer}
}

@book{10.5555/1455489,
  author = {Griewank, Andreas and Walther, Andrea},
  title = {Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation},
  year = {2008},
  isbn = {0898716594},
  publisher = {Society for Industrial and Applied Mathematics},
  address = {USA},
  edition = {Second},
}

@article{2015Automatic,
  title={Automatic Differentiation in Machine Learning: a Survey},
  author={ Pearlmutter, B. A. },
  journal={computer science},
  number={February},
  year={2015},
}

@article{2015Numerical,
  title={Numerical Analysis},
  author={ Burden, R. L.  and  Faires, Jdd },
  journal={Journal of the Royal Statistical Society},
  volume={71},
  number={1},
  pages={48-50},
  year={2015},
}

@book{2003Computer,
  title={Computer Algebra Handbook: Foundations * Applications * Systems},
  author={ Grabmeier, J.  and  Kaltofen, E.  and  Weispfenning, V. },
  publisher={Computer algebra handbook : foundations, applications, systems},
  year={2003},
}

@inbook{10.5555/60181.60188,
author = {Corliss, George F.},
title = {Applications of Differentiation Arithmetic},
year = {1988},
isbn = {0125056303},
publisher = {Academic Press Professional, Inc.},
address = {USA},
booktitle = {Reliability in Computing: The Role of Interval Methods in Scientific Computing},
pages = {127–148},
numpages = {22}
}

@article{2000An,
  title={An introduction to automatic differentiation},
  author={ Verma, A. },
  journal={Siam Computational Differentiation Techniques Applications & Tools},
  volume={78},
  number={7},
  pages={804-807},
  year={2000},
}

@inproceedings{2006The,
  title={The Data-Flow Equations of Checkpointing in Reverse Automatic Differentiation},
  author={ Dauvergne, B.  and L Hascoët},
  booktitle={Computational Science-iccs, International Conference, Reading, Uk, May},
  year={2006},
}

@article{2017Divide,
  title={Divide-and-Conquer Checkpointing for Arbitrary Programs with No User Annotation},
  author={ Siskind, Jeffrey Mark  and  Pearlmutter, Barak A. },
  journal={Optimization Methods and Software},
  volume={33},
  number={4-6},
  year={2017},
}

@article{1969The,
  title={The Principal Type-Scheme of an Object in Combinatory Logic},
  author={ Hindley, R. },
  journal={Transactions of the American Mathematical Society},
  volume={146},
  pages={29-60},
  year={1969},
}

@article{1978A,
  title={A theory of type polymorphism in programming},
  author={ Milner, R. },
  journal={Journal of Computer and System Sciences},
  volume={17},
  number={3},
  pages={348-375},
  year={1978},
}

@article{van2018Automatic,
  title={Automatic differentiation in ML: Where we are and where we should be going},
  author={van Merriënboer, Bart and  Breuleux, Olivier  and  Bergeron, Arnaud  and  Lamblin, Pascal },
  year={2018},
}

@article{1982Principal,
  title={Principal Type Schemes for Functional Programming Languages},
  author={ Damas, L.  and  Milner, R. },
  year={1982},
}
